iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
佛心分享-我的證照是這樣攻略的

老闆,外帶一份 AWS Certified Data Engineer系列 第 8

【Day 8】IAM 的基本觀念與配置: User, Role 和 Policy

  • 分享至 

  • xImage
  •  

今天繼續實作的部分

在資料湖建立的初期,希望透過我的開發電腦,鐘去抓取行情。每一分鐘產出一個交易明細的檔案,上傳到資料湖中,以便後續進行分析。
為了完成這件「簡單的動作」,有些權限的設置需要進行。

User or Role

  • 在剛開始接觸 AWS 的使用者,往往需要花一些時間去釐清 AWS IAM (Identity and Access Management,縮寫 IAM) 的運作方式。
  • 這邊很簡單地作出以下區分什麼情況要配置一個使用者,什麼時候可以採用角色進行。

適用 User

  1. 如果使用者是人,例如:Alice, Bob, CharlieDave 的帳號。
  2. 使用者是外部程式
    • 不運作在 AWS 的環境中的,例如:我的開發機上,執行的一個上傳資料程式。
    • 以 AWS CLI 的命令,以配置 User Credential 機制驗明身份後寫入的狀況。
  3. 使用者即使是運行在 AWS 環境中
    • 依然可以透過 AWS CLI 命令呼叫,以 User Credential 機制驗明身份後寫入的狀況。
    • 這種作法的風險是,除了雲端帳號管理者,要管理 IAM User 產出 Key 之外,雲端帳號管理者無法避免 Key 的保管者外流金鑰。

適用 Role

  1. 須為運作在 AWS 上的資源
    • 例如:EC2 Instance (AWS上的虛擬主機)
  2. 可以是其他 AWS 帳號,透過授權身份切換過來。
  3. 在不同的 AWS 服務串接時,資源存取通常都是以角色(Role)套用政策(Policy)的方式予以存取

給外部程式寫入資料胡、IAM 的簡單設置

  1. 以開頭所提到的功能,我要讓運作在電腦中的程式自動產出檔案後,可以自動上傳到湖裡。
  2. 已有 AWS 帳號,且在該帳號中完成 S3 Bucket 建立 (見前一篇)。
  3. 到 IAM 頁面,建立新的 Role 前,我們上面提到 Role 要配 Policy
  4. 選擇 Custom trust policy,選 JSON 編輯器,貼上下列內容。
    https://ithelp.ithome.com.tw/upload/images/20240923/20130149wzsn9SsMVN.png
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Action": "s3:ListAllMyBuckets",
			"Resource": "arn:aws:s3:::*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"s3:ListBucket",
				"s3:GetBucketLocation"
			],
			"Resource": [
				"arn:aws:s3:::threatwall"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"s3:PutObject",
				"s3:PutObjectAcl",
				"s3:GetObject",
				"s3:GetObjectAcl",
				"s3:DeleteObject"
			],
			"Resource": [
				"arn:aws:s3:::moneyismine/*"
			]
		}
	]
}
  1. 在下一步,幫這個政策取名,如取名為 quote-lake-writer
  2. 最後一步,檢視這些設定是否為預期的?
    https://ithelp.ithome.com.tw/upload/images/20240923/20130149dW4C0bcqTM.png
  3. 特別是權限(Permissions)那塊,要格外注意有沒給過頭。
  4. 再去建立 User,取個名字,如 money-maker;我沒有勾 console 權限給這個 User,以避免有人或程式嘗試從瀏覽器去登入這個帳號。 降低可能受到攻擊的可能性是非常重要的。
    https://ithelp.ithome.com.tw/upload/images/20240923/20130149lKcrrER8FH.png
  5. 配置 Policy 給這個 User
    https://ithelp.ithome.com.tw/upload/images/20240923/20130149YbRZlwgn5G.png
  6. 完成後...
    https://ithelp.ithome.com.tw/upload/images/20240923/20130149IlP5LMfDuV.png
  7. 去產生、下載這個使用者的 Credentials 的步驟
    https://ithelp.ithome.com.tw/upload/images/20240923/20130149wve9i3ST3u.png
  8. 選擇 AWS CLI
    https://ithelp.ithome.com.tw/upload/images/20240923/20130149eSztjRXFTO.png
  9. 取名字
    https://ithelp.ithome.com.tw/upload/images/20240923/20130149ruQzQd23k7.png
  10. 出來了...這個頁面只會顯示一次,可以選擇下載存起來
    https://ithelp.ithome.com.tw/upload/images/20240923/20130149E7oDXv1U58.png

結論

  • 以上的政策格式,蠻常出現在各式 AWS 證照考試中。
  • 如果無法馬上理解,建議可以試著去唸唸看 Action 裡面寫的東西。
    • 對於某資源的權限,可以做什麼動作。
  • Effect 則表示加上權限,或是扣除權限。
  • Resource 則是影響範圍,寫上 Amazon Resource Names。

參考文件


上一篇
【Day 7】實作、以 Amazon S3 建立資料湖
下一篇
【Day 9】 製造資料給資料湖 / 成本分析
系列文
老闆,外帶一份 AWS Certified Data Engineer13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言